<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    pageContext.setAttribute("name1","lx1"); //保存的数据只在一个页面中有效
    request.setAttribute("name2","lx2"); //保存的数据只在一次请求中有效，请求转发会携带这个数据
    session.setAttribute("name3","lx3"); //保存的数据只在一次会话中有效，从打开浏览器到关闭浏览器
    application.setAttribute("name4","lx4"); //保存的数据只在服务器中有效，从打开服务器到关闭服务器
%>
<%
    //低层到高层的作用域：page->request->session->application
    //jvm 双亲委派机制：想找一个类，就先从导入的包中找，找不到就从根加载器、类加载器中找，找不到再从rt.jar包中找，都找不到就会ClassNotFound
    String name1 = (String)pageContext.getAttribute("name1");
    String name2 = (String)pageContext.getAttribute("name2");
    String name3 = (String)pageContext.getAttribute("name3");
    String name4 = (String)pageContext.getAttribute("name4");
    String name5 = (String)pageContext.getAttribute("name5");

    //通过转发请求，request设置的值在另一个页面也会被读取到
    //下面两种方法都可以转发
    // pageContext.forward("/pageObjectDemo2.jsp");
    pageContext.getRequest().getRequestDispatcher("/pageObjectDemo2.jsp").forward(request,response);
%>
<%--
 使用EL表达式取值，如果值不存在将不会显示
 如果用标签取值，值不存在会显示null
--%>
<h1>${name1}</h1>
<h1>${name2}</h1>
<h1>${name3}</h1>
<h1>${name4}</h1>
<%--输出空白--%>
<h1>${name5}</h1>
<%--输出null--%>
<h1><%=name5%></h1>

</body>
</html>
